home *** CD-ROM | disk | FTP | other *** search
/ Collection of Internet / Collection of Internet.iso / infosrvr / dev / www_talk.930 / 000588_dsr@hplb.hpl.hp.com _Wed Jan 20 13:33:53 1993.msg < prev    next >
Internet Message Format  |  1994-01-24  |  5KB

  1. Return-Path: <dsr@hplb.hpl.hp.com>
  2. Received: from dxmint.cern.ch by  nxoc01.cern.ch  (NeXT-1.0 (From Sendmail 5.52)/NeXT-2.0)
  3.     id AA07244; Wed, 20 Jan 93 13:33:53 MET
  4. Received: by dxmint.cern.ch (5.65/DEC-Ultrix/4.3)
  5.     id AA13568; Wed, 20 Jan 1993 13:49:15 +0100
  6. Received: from dragget.hpl.hp.com by hplb.hpl.hp.com; Wed, 20 Jan 93 12:45:48 GMT
  7. Received: by manuel.hpl.hp.com
  8.     (16.6/15.6+ISC) id AA14775; Wed, 20 Jan 93 12:50:26 GMT
  9. From: Dave_Raggett <dsr@hplb.hpl.hp.com>
  10. Message-Id: <9301201250.AA14775@manuel.hpl.hp.com>
  11. Subject: Re Re HTML and Lists
  12. To: www-talk@nxoc01.cern.ch
  13. Date: Wed, 20 Jan 93 12:50:25 GMT
  14. Mailer: Elm [revision: 66.25]
  15.  
  16. Thanks Tim for clarifying the current ideas for DL etc.
  17.  
  18. >> I would further like to have the freedom to embed lists, e.g. OL in UL and
  19. >> vice versa, but allowing only one level of embedding, e.g.
  20.  
  21. > I think we should stick to a non-nested structure for HTML and get it  
  22. > registered as a simple format.  Nested structured into HTML2 which we  
  23. > can all discuss when HTML is registered with IANA. Reasonable?
  24.  
  25. Sounds fine to me. By the way, can you explain the status of the HTML
  26. registration with IANA, e.g. does it include Dan's new emphasis tags or not?
  27. Where will the queryform tags go - into HRML or HTML2?
  28.  
  29. By the way I am trying to cross-compile my X11/Xlib browser for Windows 3.1 on
  30. the PC. I have found a package which gives you TCP/IP for Windows, but the
  31. catch is they (Distinct of Saratoga CA) want royalties for run-time licenses!
  32.  
  33. Do you know of any alternative s/w for TCP/IP for Windows which has a free
  34. run-time license, so that we could distribute the browser as freeware?
  35.  
  36. ------
  37.  
  38. >> My implementation of lists is fairly relaxed whilst being able to support
  39. >> smooth scrolling of arbitrary length HTML documents. The processing demands
  40. >> for this require the browser to be able parse backwards -
  41.  
  42. > This could be regarded as a weird way of doing things though it  
  43. > doesn't use any memory at all I see. Most people would I think just  
  44. > store the lot.
  45.  
  46. Some confusion seems in evidence here. My browser currently just stores the
  47. plain text of the HTML document with no extra info. I have the following
  48. program structure:
  49.  
  50.     DisplayDoc()
  51.         ParseHTML()
  52.             GetToken()
  53.                 { GetLiteral() or GetWord() }
  54.  
  55.     DisplayDoc()
  56.        Refreshes screen for current document type and contents
  57.  
  58.     ParseHTML()
  59.       This procedure performs one of 4 functions, depending on mode parameter
  60.  
  61.         EITHER work forwards until current line intersects the top of the
  62.         window and update sgml state variables in the process. (mode=FORWARDS)
  63.  
  64.         OR work forwards until the current line includes the desired anchor
  65.         and update sgml state variables in the process. (mode=SEARCH)
  66.  
  67.         OR work forards until a specified part of the buffer,
  68.         but NOT updating the sgml vars  (mode=HEIGHT)
  69.  
  70.         OR display the formatted text in the window, but leave state vars
  71.         unchanged (mode=DISPLAY)
  72.  
  73.       The sgml parser is the same for all these functions and shares the
  74.       same code to reduce problems in maintaining muliples copies of the
  75.       same basic algorithm.
  76.  
  77.       It would be desirable to have a general sgml parser, supplemented by
  78.       the process rules for word wrap, and line breaks etc. For now, I have
  79.       hard-coded the HTML subset and procedural interpretation.
  80.  
  81.     DeltaHTMLPosition(long h) -- used by scrolling mechanism
  82.        Find the text line which intersects/starts from the top of the window
  83.        Note that h is the new pixel offset for the top of the window itself,
  84.        for which the current value is PixelOffset+nClipped.
  85.  
  86.        This procedure is really tricky when the new position is above the
  87.        current one. The simple approach would always work forwards from
  88.        the start of the document, but this would be real slow for scrolling
  89.        around near the end of long documents. The approach taken here
  90.        attempts to work locally in the document working backwards looking for
  91.        cues to discover line break decisions and state changes, then parsing
  92.        forwards in the normal manner to get to the current point, giving you
  93.        the relative offset. You now change the current poition to the earlier
  94.        point, and repeat until you have climbed back up to the desired point.
  95.        Works a treat!
  96.  
  97.     GetToken()
  98.        Reads an html token including newlines and words
  99.  
  100.     GetLiteral()
  101.        Used in verbatim modes (e.g. PRE), treats text lines as single words
  102.  
  103.     GetWord()
  104.        Used to non-verbatim mode to recognise html tags, newlines and words
  105.        dealing as appropriate with character references
  106.  
  107. Any comments?